{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Report 1- 交通事故理赔结果预测"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 姓名：黄红亮\n",
    "\n",
    "#### 学号：2021260165"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 任务简介"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 背景"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "对于生活中发生的交通事故，往往存在着可以理赔和无法理赔的现象。本次报告旨在训练一个数据驱动的模型，通过机器学习来预测交通事故的理赔情况。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 数据（题中提供）"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "·train.csv ：作为训练集数据，包含200000起已经发生交通事故所包含的36条信息和保险公司赔付情况。表格中的列Q1-Q36均为理赔员现场勘察采集的信息，列 Evaluation表示事故赔付审核结果，其中0表示授予理赔，1表示未通过理赔审核。其中所有的数据均为正整数。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "·test.csv ：作为测试数据，包含80000起交通事故所包含的36条信息，表格中的列Q1-Q36均为理赔员现场勘察采集的信息（与训练集相同），其中所有的数据均 为正整数。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "·sample_submit.csv：作为提交示例，给出提交数据的方式。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 目标"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "预测测试集中80000起交通事故的事故方没有被理赔的概率。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 解决途径"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "1 随机森林分类模型 先利用算法算出各列参数"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "2 PR-AUC评估"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "3 改进方法——Xgboost模型优化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "最优参数以及最高得分: [150.           0.94990999]\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 1440x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "###调n_estimators参数\n",
    "ScoreAll = []\n",
    "for i in range(10,200,10):\n",
    "    DT = RandomForestClassifier(n_estimators = i,random_state = 66) #,criterion = 'entropy'\n",
    "    score = cross_val_score(DT,data.data,data.target,cv=10).mean()\n",
    "    ScoreAll.append([i,score])\n",
    "ScoreAll = np.array(ScoreAll)\n",
    "\n",
    "max_score = np.where(ScoreAll==np.max(ScoreAll[:,1]))[0][0] ##这句话看似很长的，其实就是找出最高得分对应的索引\n",
    "print(\"最优参数以及最高得分:\",ScoreAll[max_score])  \n",
    "plt.figure(figsize=[20,5])\n",
    "plt.plot(ScoreAll[:,0],ScoreAll[:,1])\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "最优参数以及最高得分: [19.          0.95102421]\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 1440x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#选择max_depth最优值\n",
    "###粗调max_depth参数\n",
    "ScoreAll = []\n",
    "for i in range(10,30,3):\n",
    "    DT = RandomForestClassifier(n_estimators = 151,random_state = 66,max_depth =i ) #,criterion = 'entropy'\n",
    "    score = cross_val_score(DT,data.data,data.target,cv=10).mean()\n",
    "    ScoreAll.append([i,score])\n",
    "ScoreAll = np.array(ScoreAll)\n",
    "\n",
    "max_score = np.where(ScoreAll==np.max(ScoreAll[:,1]))[0][0] ##这句话看似很长的，其实就是找出最高得分对应的索引\n",
    "print(\"最优参数以及最高得分:\",ScoreAll[max_score])  \n",
    "plt.figure(figsize=[20,5])\n",
    "plt.plot(ScoreAll[:,0],ScoreAll[:,1])\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "最优参数以及最高得分: [2.         0.95102421]\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 1440x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "###调min_samples_split参数\n",
    "ScoreAll = []\n",
    "for i in range(2,10):\n",
    "    RF = RandomForestClassifier(n_estimators = 151,random_state = 66,max_depth =17,min_samples_split = i ) #,criterion = 'entropy'\n",
    "    score = cross_val_score(RF,data.data,data.target,cv=10).mean()\n",
    "    ScoreAll.append([i,score])\n",
    "ScoreAll = np.array(ScoreAll)\n",
    "\n",
    "max_score = np.where(ScoreAll==np.max(ScoreAll[:,1]))[0][0] ##这句话看似很长的，其实就是找出最高得分对应的索引\n",
    "print(\"最优参数以及最高得分:\",ScoreAll[max_score])  \n",
    "plt.figure(figsize=[20,5])\n",
    "plt.plot(ScoreAll[:,0],ScoreAll[:,1])\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "#导入必要的包\n",
    "from sklearn.ensemble import RandomForestClassifier \n",
    "from sklearn.datasets import load_digits\n",
    "from sklearn.model_selection import train_test_split,GridSearchCV,cross_val_score\n",
    "from sklearn.metrics import accuracy_score\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "\n",
    "# 读取数据\n",
    "train = pd.read_csv(\"D:\\\\gitee\\\\AI_HW_2021260165-HHLK\\\\report_01_accident_claims\\\\data\\\\train.csv\")\n",
    "test = pd.read_csv(\"D:\\\\gitee\\\\AI_HWK_2021260165-HHL\\\\report_01_accident_claims\\\\data\\\\test.csv\")\n",
    "submit = pd.read_csv(\"D:\\\\gitee\\\\AI_HWK_2021260165-HHL\\\\report_01_accident_claims\\\\data\\\\sample_submit.csv\")\n",
    "\n",
    "#导入数据集\n",
    "data = load_digits()\n",
    "x = data.data\n",
    "y = data.target\n",
    "\n",
    "# 删除id\n",
    "train.drop('CaseId', axis=1, inplace=True)\n",
    "test.drop('CaseId', axis=1, inplace=True)\n",
    "\n",
    "# 取出训练集的y\n",
    "y_train = train.pop('Evaluation')\n",
    "\n",
    "# 建立随机森林模型\n",
    "clf = RandomForestClassifier(random_state=66,n_estimators = 151,max_depth = 17,min_samples_leaf =1 ,min_samples_split =2 )\n",
    "clf.fit(train, y_train)\n",
    "y_pred = clf.predict_proba(test)[:, 1]\n",
    "\n",
    "# 输出预测结果至my_RF_prediction3.csv\n",
    "submit['Evaluation'] = y_pred\n",
    "submit.to_csv(\"D:\\\\gitee\\\\AI_HWK_2021260165-HHL\\\\report_01_accident_claims\\\\my_RF_prediction3.csv\", index=False)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.8333333333333333"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#PR-AUC的计算方法\n",
    "import numpy as np\n",
    "from sklearn.metrics import average_precision_score\n",
    "y_true = np.array([0, 0, 1, 1])\n",
    "y_predict = np.array([0.1, 0.4, 0.35, 0.8])\n",
    "average_precision_score(y_true, y_predict)  \n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "改进方法——Xgboost模型优化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "from sklearn.model_selection import train_test_split\n",
    "import xgboost as xgb\n",
    "from sklearn.metrics import accuracy_score\n",
    "\n",
    "traindata = pd.read_csv(\"D:\\\\gitee\\\\AI_HWK_2021260165-HHL\\\\report_01_accident_claims\\\\data\\\\train.csv\")\n",
    "testdata = pd.read_csv(\"D:\\\\gitee\\\\AI_HWK_2021260165-HHL\\\\report_01_accident_claims\\data\\\\test.csv\")\n",
    "submitdata = pd.read_csv(\"D:\\\\gitee\\\\AI_HWK_2021260165-HHL\\\\report_01_accident_claims\\\\data\\\\sample_submit.csv\")\n",
    "\n",
    "# 去掉没有意义的一列\n",
    "traindata.drop('CaseId', axis=1, inplace=True)\n",
    "testdata.drop('CaseId', axis=1, inplace=True)\n",
    "\n",
    "# 从训练集中分类标签\n",
    "trainlabel = traindata['Evaluation']\n",
    "traindata.drop('Evaluation', axis=1, inplace=True)\n",
    "\n",
    "traindata1, testdata1, trainlabel1 = traindata.values, testdata.values, trainlabel.values\n",
    "# 数据集分割\n",
    "X_train, X_test, y_train, y_test = train_test_split(traindata1, trainlabel1,\n",
    "                                                    test_size=0.3, random_state=123457)\n",
    "# 训练模型\n",
    "model = xgb.XGBClassifier(max_depth=5,\n",
    "                          learning_rate=0.1,\n",
    "                          min_child_weight=4,\n",
    "                          gamma=0.5,\n",
    "                          n_estimators=5000,\n",
    "                          silent=True,\n",
    "                          objective='binary:logistic',\n",
    "                          nthread=4,\n",
    "                          seed=27,\n",
    "                          scale_pos_weight=1,\n",
    "                          subsample=0.9,\n",
    "                          colsample_bytree=0.6,\n",
    "                          reg_alpha=10,\n",
    "                         colsample_bylevel=1,\n",
    "                         base_score=0.5,\n",
    "                          )\n",
    "\n",
    "model.fit(X_train, y_train)\n",
    "\n",
    "# 对测试集进行预测\n",
    "y_pred = model.predict(X_test)\n",
    "\n",
    "# 计算准确率\n",
    "accuracy = accuracy_score(y_test, y_pred)\n",
    "print('accuracy:%2.f%%' % (accuracy * 100))\n",
    "\n",
    "\n",
    "#查看AUC评价标准\n",
    "from sklearn import metrics\n",
    "#必须二分类才能计算\n",
    "print(\"AUC Score (Train): %f\" % metrics.roc_auc_score(y_test, y_pred))\n",
    "\n",
    "def run_predict():\n",
    "    y_pred_test = model.predict_proba(testdata1)[:, 1]\n",
    "    # 保存预测的结果\n",
    "    submitData = pd.read_csv(\"sample_submit.csv\")\n",
    "    submitData['Evaluation'] = y_pred_test\n",
    "    submitData.to_csv(\"xgboost9.csv\", index=False)\n",
    "\n",
    "run_predict()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 思路：\n",
    "借鉴了很多别人博客里的方法。从csdn一篇博客中网站中中了解了xgboost算法原理。一开始利用随机森林：抽等量样本，选几个特征，构建多棵树。随机森林是非常民主的算法，最终的结果由每棵决策树综合给出：如果是分类问题，那么对于每个测试集，树都会预测出一个类别进行投票，最终统计票数多的那个类别为最终类别。利用算法算出最佳的参数。后面算出结果后利用xgboost算法进行修正。得出结果为0.833758 "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 总结与体会"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "其实，对于分类的标准没有一种统一的规定，根据具体分类对象的不同，选择不同的分类标准，才能达到最佳效果。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "遇到自己暂时无法解决的问题，应该多看别人的博客，看别人算法的思路是什么，融会贯通。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "体会到python的强大之处了，比起c和fortran，python命令简洁，几句话就能够实现绘图、导入等功能。"
   ]
  }
 ],
 "metadata": {
  "interpreter": {
   "hash": "7d990ae127390bdb9fa9be493db589a953879e6aa6f077cb1d6f5050e6ee2420"
  },
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
